contatti
Home Videonoleggio Giochi Informatica Telefonia
Giochi
Tecnologia RAID

RAID significa Redundant Arrays of Independent Disks, ossia Schiere Ridondanti di Dischi Indipendenti.
La storia del RAID inizia nel 1987 quando tre brillanti ricercatori americani pubblicarono uno studio denominato "A case for Redundant Arrays of Inexpensive Disks", ecco il perché della sigla RAID, nel quale definirono 5 modi diversi di gestione di gruppi di hard disks, i cosiddetti disk array o array), assegnando un numero a ciascuno di essi, da 1 a 5. Nel 1989 poi, gli stessi autori definirono altri due tipi di modalità di gestione degli array: il RAID 0 e il 6. Le differenze tra l'uno e l'altro tipo ne determinano l'uso e le performance.
Le ragioni che spinsero alcuni ricercatori ad intraprendere studi sul modo di gestire gruppi di hard disks sono presto dette. 25 anni fa un hard disk da 100 Mb, generalmente usato nei PC dell'epoca, aveva un costo per Mb molto inferiore rispetto a quelli di grande capacità ma prestazioni velocistiche non molto inferiori. Per esempio un hard disk da 7.500 Mb costava circa 100.000 $. Perciò trovare un modo di gestire gruppi di hard disks di piccola capacità in modo da emulare hard disk di grande capacità rappresentava un'alternativa economicamente molto interessante all'uso di singoli dischi di grande capacità ma altissimo costo.
L'ostacolo principale a cui i ricercatori dovettero far fronte era l'affidabilità degli array di dischi. In un array composto ad esempio da 100 dischi da 100 Mb, considerando che la vita media di un singolo hard disk da 100 Mb si aggirava sulle 30.000 ore, si sarebbe guastato un hard disk ogni 12 giorni e ciò non era una bella cosa.
La soluzione a ciò fu l'introduzione di adeguate tecniche di protezione dei dati costituite da ridondanza (cioè più copie di essi ) e controlli di errore di varia natura.
Per fortuna l'evoluzione tecnologica ha introdotto hard disks sempre più affidabili e veloci, tanto è vero che oggi i migliori HD SCSI arrivano a vite medie dell'ordine del milione di ore a tutto vantaggio dell'affidabilità degli array così formati.
Ma veniamo alla descrizione delle tecniche utilizzate per gestire gli array nelle varie tipologie di RAID.

RAID 0 : Striping. E' stato denominato RAID solo per comodita' di denominazione poiché non offre alcuna delle garanzie di protezione dei dati tipica dei sistemi RAID. Infatti i dati sono distribuiti su tutti i dischi dell'array in sequenza ciclica e non c'è alcun dato di verifica. Il numero dei dischi richiesti per formare un array in RAID 0 è pari al numero dei dischi disponibili per l'archiviazione dei dati. Con questo sistema la capacità del disco virtuale che il sistema di gestione rappresenta al sistema operativo è pari alla capacità complessiva dei dischi che formano l'array. Questo sistema di gestione pur non garantendo alcun tipo di protezione dai guasti pur tuttavia ha dei pregi indiscutibili che sono:

Un'alta capacità e velocità di trasferimento dati sia in lettura che in scrittura.

I dati scritti sono visti in sequenza dal sistema operativo mentre nella realtà sono distribuiti in strisce (stripes) consecutive sui dischi dell'array, senza alcuna ripetizione o metodo di controllo di errore. Gli stripes quindi sono le strisce di sequenze di dati cicliche che costituiscono il sistema di partizionamento dei dati attraverso il quale i gruppi di dischi costituenti l'array vengono gestiti. . Il sistema operativo, però, vede virtualmente un unico hard disk complessivo senza evidenziare il complesso sistema di gestione che c'è dietro. Quest'ultima è la caratteristica comune di tutti i sistemi RAID.

RAID 1: Mirroring. In questo caso tutti i dati sono replicati su dischi separati, generalmente 2. In pratica i dati sono scritti replicandoli tante volte quanti sono i dischi. Ciò comporta una maggiore velocità in lettura rispetto a quella del singolo disco componente, simile a quella del disco singolo invece la capacità in scrittura.

Tale struttura corrisponde ad un backup automatico dei dati ripetuti sui vari dischi. I dati sono visti dal sistema operativo come un singolo disco virtuale di capacità pari a quella del singolo disco.

RAID 2: In questo sistema l'array è costituito da un insieme N + m di dischi dove i dati sono distribuiti su N dischi ed i dati di verifica in codice Hamming sono scritti su m dischi il cui numero dipende da N. Più dischi dati N ci saranno e maggiore sarà il numero m di dischi di verifica. Le informazioni di verifica in codice Hamming corrispondono come funzionamento al sistema di controllo della parità su 2 bit delle memorie ECC utilizzate su server e workstation. In questo sistema i dati sono distribuiti byte per byte sui dischi dell'array, aggiungendo un numero sufficiente di check disk contenenti i bit di controllo necessari per correggere singoli bit errati nei dati. Ogni 10 dischi di dati occorrono con questo sistema 4 dischi di checking. Tale sistema non è stato applicato poiché visto che l'unità minima di trasferimento è di un settore pari a 512 byte la sua applicazione avrebbe richiesto appositi hard disk che non esistono in commercio.

RAID 3: Sistema a trasferimento parallelo con parità. Praticamente simile al RAID 2 con la sola differenza che i dati di verifica del controllo di parità sono scritti su un solo disco di checking. Perciò la struttura tipica di un array in RAID 3 sarà costituita da un numero di dischi pari a N+1. Cioè un disco di controllo ogni N dischi dati. Tale struttura assicura la più alta capacità di trasferimento di grosse quantità di dati in I/O tra i vari tipi di RAID ed una capacità di far fronte a piccole richieste di I/O circa doppia rispetto a quella del singolo disco.

Come nel RAID 2, anche nel 3 abbiamo un accesso parallelo ai dischi. Quindi la gestione degli array in RAID 3 è destinata ai supercomputer che gestiscono grossi file, infatti la capacità di trasferimento di grosse quantità di dati è la più alta dei vari tipi di RAID. Non così è per le applicazioni transazionali tipo database che richiedono piccole richieste di I/O infatti in questo caso tale tipo di operazione richiede circa il doppio del tempo che nel disco singolo. Purtroppo gli hard disks moderni non supportano più il funzionamento in sincronismo necessario al funzionamento in accesso parallelo tipico di questo sistema. Perciò chi pensasse di utilizzare questo sistema al giorno d'oggi andrebbe incontro ad una cocente delusione perchè i tempi morti necessari all'accesso ai vari dischi senza sincronia annullerebbero tutti i vantaggi di tale gestione.

RAID 4: Dati distribuiti in stripes sequenziali e dati di verifica di parità su un solo disco di checking. Il numero di dischi necessario alla gestione di un array in RAID 4 è pari ad N+1. Un disco di controllo ogni N dischi di dati. Abbiamo visto finora che il difetto principale dei RAID 2 e 3 è quello della necessità di accesso parallelo e contemporaneo ai dischi dell'array. Superare questo handicap per estendere l'uso della gestione multidisco anche al campo delle applicazioni di tipo transazionale ( database e server ) con sufficiente convenienza in termini di velocità e facilità è il passo successivo nella definizione di sistemi RAID. Nel RAID 4 infatti si utilizza uno striping che anziché trasferire solo un bit o un byte singolo per disco, trasferisce più byte in modo da completare l'intero record della transazione. Quindi si perde la velocità caratteristica del distribuire i dati simultaneamente in parallelo sui dischi ma si guadagna nella possibilità di effettuare accessi contemporanei accessi in I/O sui dischi. I dati di verifica sono scritti su un disco a parte che funziona da check disk. Il controllo di parità è più semplice poiché i dati da verificare sono scritti di seguito su un solo disco invece di essere sparsi byte per byte su vari dischi come nei RAID 2 e 3. Non sono però tutte rose e fiori. Infatti se da una parte una operazione in lettura richiede un solo accesso ai dischi, una scrittura richiede ben 4 accessi.

A rovinare ancora di più le prestazioni di una gestione in RAID 4 concorre ancora un aspetto molto importante di questo tipo di gestione dell'array: se da un lato in lettura si raggiungono velocità notevoli di trasferimento dati grazie allo sfruttamento dell'accesso simultaneo e parallelo ai dischi, in scrittura questa caratteristica non può essere sfruttata. Infatti la separazione del disco di checking dagli altri comporta il dover procedere ad una singola scrittura alla volta ed aggiornare ad ogni singola scrittura i dati di controllo. Una limitazione così forte alla velocità ha comportato il mancato utilizzo pratico di questo tipo di gestione dell'array.

RAID 5: Il limite in scrittura della gestione dei dischi in RAID 4 è stata superata con la definizione del RAID 5 che modifica il sistema di archiviazione dei dati di controllo. Infatti nel sistema in RAID 5 i dati di verifica sono anch'essi distribuiti sui vari dischi di seguito ai dati normali senza un disco dedicato esclusivamente ad essi anche se di fatto è necessaria l'equivalente presenza di un disco in più per gestire un array in RAID 5. Anche per il RAID 5 infatti sono necessari alla gestione di un array N+1 dischi.

Col RAID 5 si raggiungono velocità più che soddisfacenti anche in ambiente transazionale tipico dei server tanto è vero che il RAID 5 è la configurazione tipica in questo campo.

RAID 6: Nel 1989 la scarsa affidabilità degli hard disks dell'epoca spinse i ricercatori a definire un sesto sistema di gestione degli array chiamato RAID 6. Si tratta di una versione del RAID 5 con un disco di controllo in più. In pratica i dati subiscono due tipi di controllo diversi ed indipendenti perciò lo spazio destinato alla doppia verifica fa aumentare il numero dei dischi necessari alla costituzione dell'array. Tipicamente N + 2. Col tempo però l'affermarsi sul mercato di hard disks sempre più affidabili ha fatto venir meno la convenienza dell'utilizzo della gestione in RAID 6 a vantaggio di quella in RAID 5.

Dalla definizione letteraria dei sistemi di gestione degli array passiamo adesso alla realtà di oggi di questo tipo di tecnologia.

Il passare del tempo accompagnato dall'evoluzione tecnologica ha provocato la selezione naturale dei sistemi di gestione degli array attraverso la creazione di sistemi combinati ibridi di gestione. Tanto è vero che oggi piuttosto che tendere a gestire array di numerosi dischi si tende alla gestione di array di array di dischi. Si assiste infatti alla coesistenza di due essenziali classi che mescolano tra loro una gestione RAID interna ai singoli array e una gestione RAID di array di array: Striped Array of Mirrored Array e Mirrored Array of Striped Array. Nel primo caso chiamato per brevità stripe of mirror si tratta di array gestiti in RAID 0,3 o 5 i cui componenti sono a loro volta array gestiti in RAID 1. Nel secondo viceversa si tratta di array gestiti in RAID 1 i cui componenti sono array gestiti in RAID 0,3 o 5. Logicamente per la struttura stessa che presentano i primi garantiscono un livello di sicurezza più alto rispetto ai guasti.

Come si vede c'è una certa varietà di sistemi e combinazioni di sistemi a complicare il panorama in esame. I sistemi di gestione dei dischi con modalità RAID è complesso e variegato con implicazioni economiche enormi. La gestione degli immensi database necessari alle applicazioni in campo meteorologico, grafico, scientifico non avrebbe avuto gli attuali sviluppi senza la creazione di questa tecnologia però. Neanche i super computer da milioni di megaflops al secondo potrebbero gestire la loro fame di dati senza le capacità di trasferimento garantite dalla gestione RAID dei dischi. Questa in definitiva costituisce un baluardo indispensabile per la moderna scienza dell'informazione.

 

back

 

CATEGORIE

MARINO'S © 2007 | P.IVA 02665011207 | Tutti i diritti sono Riservati | Projected by Maurizio Castigliola | Webdesigner Maurizio Castigliola